#ifndef MOTIONBLURDIALOG_H
#define MOTIONBLURDIALOG_H

#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QRadioButton>
#include <QButtonGroup>
#include <QGroupBox>

#include "transformationdialog.h"
#include "filter.h"

/// Dialog to parameterize motion blur transformation
class MotionBlurDialog : public TransformationDialog
{
    Q_OBJECT

    QImage* _modifiedImage;
    Filter* _filter;

    QVBoxLayout* _mainLayout;
    QVBoxLayout* _groupBoxLayout;
    QHBoxLayout* _subLayout;
    QPushButton* _okButton;

    std::vector<QRadioButton*> _buttons;
    QButtonGroup* _buttonGroup;
    QGroupBox* _groupBox;

    int _selectedChoice;
    float _matrix[81];
private slots:
    void choice_clicked();
public:
    MotionBlurDialog(const QImage& img, QWidget* parent = 0);
    ~MotionBlurDialog();
    void get_filter_matrix(float (&matrix)[81]) const;
};

#endif // MOTIONBLURDIALOG_H
